﻿GMap2 = function(container, opts)
{
    /// <summary>Creates a new map inside of the given HTML container, which is typically a DIV element.</summary>
    /// <param name="container" type="String">Required. The ID of the HTML control that will contain the map.</param>
    /// <param name="opts" type="GMapOptions">Options of the map.</param>       
}

GMap2.prototype =
{   
    // ====================================================================================
    // Methods
    // ====================================================================================
    enableDragging : function()
    {
        /// <summary>Enables the dragging of the map (enabled by default).</summary>
    },
    
    disableDragging : function()
    {
        /// <summary>Disables the dragging of the map.</summary>
    },
    
    draggingEnabled : function()
    {
        /// <summary>Returns true if the dragging of the map is enabled.</summary>
        /// <returns type="Boolean"></returns>
    },
    
    enableInfoWindow : function()
    {
        /// <summary>Enables info window operations on the map (enabled by default).</summary>
    },
    
    disableInfoWindow : function()
    {
        /// <summary>Closes the info window, if it is open, and disables the opening of a new info window.</summary>
    },
    
    infoWindowEnabled : function()
    {
        /// <summary>Returns true iff the info window is enabled.</summary>
        /// <returns type="Boolean"></returns>
    },
    
    enableDoubleClickZoom : function()
    {
        /// <summary>Enables info window operations on the map (enabled by default).</summary>
        ///none	Enables double click to zoom in and out (disabled by default). (Since 2.58)
    },
    
    disableDoubleClickZoom : function()
    {
        /// <summary>Disables double click to zoom in and out. (Since 2.58)</summary>
    },
    
    doubleClickZoomEnabled : function()
    {
        /// <summary>Returns true if double click to zoom is enabled. (Since 2.58)</summary>
        /// <returns type="Boolean"></returns>
    },
    
    enableContinuousZoom : function()
    {
        /// <summary>Enables continuous smooth zooming for select browsers (disabled by default). (Since 2.58)</summary>
    },
    
    disableContinuousZoom : function()
    {
        /// <summary>Disables continuous smooth zooming. (Since 2.58)</summary>
    },
    
    continuousZoomEnabled : function()
    {
        /// <summary>Returns true if continuous smooth zooming is enabled. (Since 2.58)</summary>
        /// <returns type="Boolean"></returns>
    },
    
    enableGoogleBar : function()
    {
        /// <summary>Enables the GoogleBar, an integrated search control, to the map. When enabled, this control takes the place of the default Powered By Google logo. Note that this control is not enabled by default. (Since 2.92)</summary>
    },
    
    disableGoogleBar : function()
    {
        /// <summary>Disables the GoogleBar integrated search control. When disabled, the default Powered by Google logo occupies the position formerly containing this control. Note that this control is already disabled by default. (Since 2.92)</summary>
    },
    
    enableScrollWheelZoom : function()
    {
        /// <summary>Enables zooming using a mouse's scroll wheel. Note: scroll wheel zoom is disabled by default. (Since 2.78)</summary>
    },
    
    disableScrollWheelZoom : function()
    {
        /// <summary>Disables zooming using a mouse's scroll wheel. Note: scroll wheel zoom is disabled by default. (Since 2.78)</summary>
    },
    
    scrollWheelZoomEnabled : function()
    {
        /// <summary>Returns a Boolean indicating whether scroll wheel zooming is enabled. (Since 2.78)</summary>
        /// <returns type="Boolean"></returns>
    },
    
    
    
    // ====================================================================================
    // Modify the Map Types
    // ====================================================================================
    
    getMapTypes : function() 
    {
		/// <summary>Returns the array of map types registered with this map.</summary>
		/// <returns type="GMapType[]"></returns>
	},
	
	getCurrentMapType : function() 
	{
		/// <summary>Returns the currently selected map type.</summary>
		/// <returns type="GMapType"></returns>
	},
	
	setMapType : function(type) 
	{
		/// <summary>Selects the given new map type. The type must be known to the map. See the constructor, and the method addMapType().</summary>
		/// <param name="type" type="GMapType">The map type to set</param>
	},
	
	addMapType : function(type) 
	{
		/// <summary>Adds a new map type to the map. See section GMapType for how to define custom map types.</summary>
		/// <param name="type" type="GMapType">The map type to add</param>
	},
	
	removeMapType : function(type) 
	{
		/// <summary>Removes the map type from the map. Will update the set of buttons displayed by the GMapTypeControl or GHierarchicalMapTypeControl and fire the removemaptype event.</summary>
		/// <param name="type" type="GMapType">The map type to remove</param>
	},
    
    
    
    // ====================================================================================
    // Map Types
    // ====================================================================================
    
    isLoaded : function() 
    {
		/// <summary>Returns true if the map was initialized by setCenter() since it was created.</summary>
		/// <returns type="Boolean"></returns>
	},
	
	getCenter : function() 
	{
		/// <summary>Returns the geographical coordinates of the center point of the map view.</summary>
		/// <returns type="GLatLng"></returns>
	},
	
	getBounds: function() 
	{
		/// <summary>Returns the the visible rectangular region of the map view in geographical coordinates.</summary>
		/// <returns type="GLatLngBounds"></returns>
	},
	
	getBoundsZoomLevel: function(bounds) 
	{
		/// <summary>Returns the zoom level at which the given rectangular region fits in the map view. The zoom level is computed for the currently selected map type. If no map type is selected yet, the first on the list of map types is used.</summary>
		/// <returns type="Number" integer="true"></returns>
		/// <param name="bounds" type="GLatLngBounds">The lat/long bounds</param>
	},
	
	getSize: function() 
	{
		/// <summary>Returns the size of the map view in pixels.</summary>
		/// <returns type="GSize"></returns>
	},
	
	getZoom: function() 
	{
		/// <summary>Returns the current zoom level.</summary>
		/// <returns type="Number"></returns>
	},
	
	getDragObject: function() 
	{
		/// <summary>Returns the draggable object used by this map. (Since 2.93)</summary>
		/// <returns type="GDraggableObject"></returns>
	},	
    
    
    
    // ====================================================================================
    // Modify the Map State
    // ====================================================================================
    
    setCenter : function(center, zoom, type)
    {
        /// <summary>Sets the map view to the given center. Optionally, also sets zoom level and map type.</summary>
        /// <param name="center" type="GLatLng">An GLatLng element of the center</param>
        /// <param name="zoom" type="Number">Zoom level to be applied.</param>
        /// <param name="type" type="GMapType">Map type to be applied. The map type must be known to the map. See the constructor, and the method addMapType().</param>
    },
    
    panTo : function(center)
    {
        /// <summary>Changes the center point of the map to the given point. If the point is already visible in the current map view, change the center in a smooth animation.</summary>
        /// <param name="center" type="GLatLng">An GLatLng element of the center</param>
    }, 
    
    panBy : function(distance)
    {
        /// <summary>Starts a pan animation by the given distance in pixels.</summary>
        /// <param name="distance" type="Number">Given distance in pixels</param>
    },  
    
    panDirection : function(dx, dy)
    {
        /// <summary>Starts a pan animation by half the width of the map in the indicated directions. +1 is right and down, -1 is left and up, respectively.</summary>
        /// <param name="dx" type="Number"></param>
        /// <param name="dy" type="Number"></param>
    },
    
    setZoom : function(level)
    {
        /// <summary>Sets the zoom level to the given new value.</summary>
        /// <param name="level" type="Number">Zoom level to be applied</param>
    }, 
    
    zoomIn : function()
    {
        /// <summary>Increments zoom level by one.</summary>
    },  
    
    zoomOut : function()
    {
        /// <summary>Decrements zoom level by one.</summary>
    },
    
    savePosition : function()
    {
        /// <summary>Stores the current map position and zoom level for later recall by returnToSavedPosition().</summary>
    }, 
    
    returnToSavedPosition : function()
    {
        /// <summary>Restores the map view that was saved by savePosition().</summary>
    },
    
    checkResize : function()
    {
        /// <summary>Notifies the map of a change of the size of its container. Call this method after the size of the container DOM object has changed, so that the map can adjust itself to fit the new size.</summary>
    },
    
    
    
    // ====================================================================================
    // Overlays
    // ====================================================================================
    addOverlay : function(overlay)
    {
        /// <summary>Adds an overlay to the map and fires the addoverlay event.</summary>
        /// <param name="overlay" type="GOverlay">All objects that implements GOverlay interface : GMarker, GPolyline, GTileLayerOverlay or GInfoWindow</param>
    }, 
    
    removeOverlay : function(overlay)
    {
        /// <summary>Removes the overlay from the map. If the overlay was on the map, it fires the removeoverlay event.</summary>
        /// <param name="overlay" type="GOverlay">All objects that implements GOverlay interface : GMarker, GPolyline, GTileLayerOverlay or GInfoWindow</param>
    },
    
    clearOverlays : function()
    {
        /// <summary>Removes all overlay from the map, and fires the clearoverlays event.</summary>
    },
    
    getPane : function(pane)
    {
        /// <summary>Returns a DIV that holds the object in the layer identified by pane.</summary>
        /// <param name="pane" type="String">Layer that contains the object</param>
        /// <returns type="Node"></returns>
    },
    
    
    
    // ====================================================================================
    // Coordinate Transformations
    // ====================================================================================
    fromContainerPixelToLatLng : function(pixel)
    {
        /// <summary>Computes the geographical coordinates of the point at the given pixel coordinates in the DOM element that contains the map on the page.</summary>
        /// <param name="pixel" type="GPoint">Pixel coordinates in the DOM element that contains the map.</param>
        /// <returns type="GLatLng"></returns>
    },
    
    fromLatLngToContainerPixel : function(latlng)
    {
        /// <summary>Computes the pixel coordinates of the given geographical point in the DOM element that contains the map on the page. (Since 2.100)</summary>
        /// <param name="latlng" type="GLatLng">Geographical point.</param>
        /// <returns type="GPoint"></returns>
    },
    
    fromLatLngToDivPixel : function(latlng)
    {
        /// <summary>Computes the pixel coordinates of the given geographical point in the DOM element that holds the draggable map. You need this method to position a custom overlay when you implement the GOverlay.redraw() method for a custom overlay.</summary>
        /// <param name="latlng" type="GLatLng">Geographical point.</param>
        /// <returns type="GPoint"></returns>
    },
    
    fromDivPixelToLatLng : function(pixel)
    {
        /// <summary>Computes the geographical coordinates from pixel coordinates in the div that holds the draggable map. This may be helpful for when you implement interaction with custom overlays that don't extend the GOverlay interface. If this doesn't give you the expected output, try the fromContainerPixelToLatLng method instead.</summary>
        /// <param name="pixel" type="GPoint">Pixel coordinates in the DIV that holds the draggable map.</param>
        /// <returns type="GLatLng"></returns>
    },
    
    
    
    // ====================================================================================
    // Info Window
    // ====================================================================================
    openInfoWindow : function(latlng, node, opts)
    {
        /// <summary>Opens a simple info window at the given point.</summary>
        /// <param name="latlng" type="GLatLng">Geographical Point.</param>
        /// <param name="node" type="String">The content of the info window is given as a DOM node.</param>
        /// <param name="opts"></param>
    },
    
    openInfoWindowHtml : function(latlng, html, opts)
    {
        /// <summary>Opens a simple info window at the given point.</summary>
        /// <param name="latlng" type="GLatLng">Geographical Point.</param>
        /// <param name="html" type="String">The content of the info window is given as HTML text.</param>
        /// <param name="opts"></param>
    },
    
    openInfoWindowTabs : function(latlng, html, opts)
    {
        /// <summary>Opens a tabbed info window at the given point.</summary>
        /// <param name="latlng" type="GLatLng">Geographical Point.</param>
        /// <param name="tabs" type="String">The content of the info window is given as DOM nodes.</param>
        /// <param name="opts"></param>
    },
    
    openInfoWindowTabsHtml : function(latlng, html, opts)
    {
        /// <summary>Opens a simple info window at the given point.</summary>
        /// <param name="latlng" type="GLatLng">Geographical Point.</param>
        /// <param name="html" type="String">The content of the info window is given as HTML text.</param>
        /// <param name="opts"></param>
    },
    
    showMapBlowup : function(latlng, opts)
    {
        /// <summary>Opens an info window at the given point that contains a closeup view on the map around this point.</summary>
        /// <param name="latlng" type="GLatLng">Geographical Point.</param>
        /// <param name="opts"></param>
    },
    
    updateCurrentTab : function(modifier, onupdate)
    {
        /// <summary>Updates the content of the currently open GInfoWindow object, without repositioning. The info window is resized to fit the new content. (Since 2.85)</summary>
        /// <param name="modifier">The modifier function is used to modify the currently selected tab and is passed a GInfoWindowTab as an argument.</param>
        /// <param name="onupdate">The optional onupdate callback function is called after the info window displays the new content.</param>
    },
    
    clearOverlays : function()
    {
        /// <summary>Closes the currently open info window.</summary>
    },
    
    getInfoWindow : function()
    {
        /// <summary>Returns the info window object of this map. If no info window exists yet, it is created, but not displayed. This operation is not influenced by enableInfoWindow().</summary>
        /// <returns type="GInfoWindow"></returns>
    }    
}

